<?php
	if ($this->pedido->getCliente()->getId() != null && sizeof($this->pedido->getItens()) > 0) {
	    if ($_POST) {
	    	if (isset($_POST['btnAlterarCupom'])) {
	    		$novoCupom	= $_POST['strValePresente'];
	    		if (!$this->pedido->setValePresente($novoCupom)) {
					$strMensagem 	= "Cupom / Vale-Presente inv&aacute;lido.";
					$_SESSION['mensagens']['cupomInvalido']	= $strMensagem;
				}
				$_SESSION['pedido']	= serialize($this->pedido);
				header("Location: ./index.php?action=pagamento");
	    	}
			
			if (isset($_POST['btnAlterarEndereco'])) {
				header("Location: ./index.php?action=alterarendereco");
			}
			
			if (isset($_POST['efetuarPagamentoBoleto'])) {
				if ($_POST['radioFormaPagamento'] == "boleto") {
					$pagamento	= new Pagamento();
					$pagamento->setBoleto();
					$this->pedido->setPagamento($pagamento);
					if ($this->pedido->finalizaCompra()) {
						$_SESSION['pedido']	= serialize($this->pedido);
						header("Location: ./index.php?action=confirmacompra");
					}
					else {
						$strErro 	= "Desculpe-nos, houve um erro interno, por favor tente novamente.";
						$_SESSION['mensagens']['strErro'] = $strErro;
						
						header("Location: ./index.php?action=pagamento");
					}
				}
				else {
					$strErro	= "Selecione Boleto Banc&aacute;rio como forma de pagamento para efetuar pagamento usando Boleto.";
					$_SESSION['mensagens']['strErro'] = $strErro;
					header("Location: ./index.php?action=pagamento");
				}
			}
			
			if (isset($_POST['efetuarPagamentoDebito'])) {
				if ($_POST['radioFormaPagamento'] == "debito") {
					if (isset($_POST['radioBancoDebito'])) {
						$pagamento	= new Pagamento();
						$pagamento->setDebito($_POST['radioBancoDebito']);
						$this->pedido->setPagamento($pagamento);
						if ($this->pedido->finalizaCompra()) {
							$_SESSION['pedido']	= serialize($this->pedido);
							header("Location: ./index.php?action=confirmacompra");
						}
						else {
							$strErro 	= "Desculpe-nos, houve um erro interno, por favor tente novamente.";
							$_SESSION['mensagens']['strErro'] = $strErro;
							
							header("Location: ./index.php?action=pagamento");
						}
					}
					else {
						$strMensagem 	= "Selecione o Banco que gostaria de utilizar em seu D&eacute;bito Online.";
						$_SESSION['mensagens']['strErro'] = $strMensagem;
						header("Location: ./index.php?action=pagamento");
					}
				}
				else {
					$strErro	= "Selecione D&eacute;bito Online como forma de pagamento para efetuar pagamento usando D&eacute;bito.";
					$_SESSION['mensagens']['strErro'] = $strErro;
					header("Location: ./index.php?action=pagamento");
				}
			}
			
			if (isset($_POST['efetuarPagamento5Store'])) {
				if ($_POST['radioFormaPagamento'] == "5Store") {
					if (isset($_POST['numeroCartao5Store'])
						&& isset($_POST['nomeCartao5Store'])
						&& isset($_POST['mesValidadeCartao5Store'])
						&& isset($_POST['anoValidadeCartao5Store'])
						&& isset($_POST['numeroParcelas5Store'])
						&& Cartao::verificaNumero($_POST['numeroCartao5Store'])
						&& Cartao::verificaNome($_POST['nomeCartao5Store'])
						&& Cartao::verificaData($_POST['mesValidadeCartao5Store'], $_POST['anoValidadeCartao5Store'])) {
						$pagamento	= new Pagamento($_POST['numeroParcelas5Store']);
						$pagamento->setCartao('5Store');
						$this->pedido->setPagamento($pagamento);
						if ($this->pedido->finalizaCompra()) {
							$_SESSION['pedido']	= serialize($this->pedido);
							header("Location: ./index.php?action=confirmacompra");
						}
						else {
							$strErro 	= "Desculpe-nos, houve um erro interno, por favor tente novamente.";
							$_SESSION['mensagens']['strErro'] = $strErro;
							
							header("Location: ./index.php?action=pagamento");
						}
					}
					else {
						$strErro	= "Preencha todos os campos corretamente para efetuar pagamento usando seu Cart&atilde;o 5Store.";
						$_SESSION['mensagens']['strErro'] = $strErro;
						header("Location: ./index.php?action=pagamento");
					}
				}
				else {
					$strErro	= "Selecione Cart&atilde;o 5Store como forma de pagamento para efetuar pagamento usando seu Cart&atilde;o 5Store.";
					$_SESSION['mensagens']['strErro'] = $strErro;
					header("Location: ./index.php?action=pagamento");
				}
			}
			
			if (isset($_POST['efetuarPagamentoCartaoCredito'])) {
				if ($_POST['radioFormaPagamento'] == "cartao") {
					if (isset($_POST['radioBandeiraCartao'])
						&& isset($_POST['numeroCartaoCredito'])
						&& isset($_POST['nomeCartaoCredito'])
						&& isset($_POST['mesValidadeCartaoCredito'])
						&& isset($_POST['anoValidadeCartaoCredito'])
						&& isset($_POST['digitoSegurancaCartaoCredito'])
						&& isset($_POST['numeroParcelasCartaoCredito'])
						&& Cartao::verificaNumero($_POST['numeroCartaoCredito'])
						&& Cartao::verificaNome($_POST['nomeCartaoCredito'])
						&& Cartao::verificaDigito($_POST['digitoSegurancaCartaoCredito'])
						&& Cartao::verificaData($_POST['mesValidadeCartaoCredito'], $_POST['anoValidadeCartaoCredito'])) {
						$pagamento	= new Pagamento($_POST['numeroParcelasCartaoCredito']);
						$pagamento->setCartao($_POST['radioBandeiraCartao']);
						$this->pedido->setPagamento($pagamento);
						if ($this->pedido->finalizaCompra()) {
							$_SESSION['pedido']	= serialize($this->pedido);
							header("Location: ./index.php?action=confirmacompra");
						}
						else {
							$strErro 	= "Desculpe-nos, houve um erro interno, por favor tente novamente.";
							$_SESSION['mensagens']['strErro'] = $strErro;
							
							header("Location: ./index.php?action=pagamento");
						}
					}
					else {
						$strErro	= "Preencha todos os campos para efetuar pagamento usando seu Cart&atilde;o de Cr&eacute;dito.";
						$_SESSION['mensagens']['strErro'] = $strErro;
						header("Location: ./index.php?action=pagamento");
					}
				}
				else {
					$strErro	= "Selecione Cart&atilde;o de Cr&eacute;dito como forma de pagamento para efetuar pagamento usando seu Cart&atilde;o de Cr&eacute;dito.";
					$_SESSION['mensagens']['strErro'] = $strErro;
					header("Location: ./index.php?action=pagamento");
				}
			}
	    }
		else {
			$pedido	= $this->registro->get('pedido');
			
			if ($pedido->getEnderecoEntrega() == $pedido->getCliente()->getEndereco()) {
				$pedido->setCep($pedido->getCliente()->getCEP());
			}
			$_SESSION['pedido']	= serialize($pedido);
			
			$pedido->calculaCustoTotalEmbrulho();
			
			$possiveisParcelas	= $pedido->calculaParcelas();
			
			$itens	= $pedido->getItens();
			$this->registro->set('itensPedido', $itens);
			$this->registro->set('pedido', $pedido);
			$this->registro->set('possiveisParcelas', $possiveisParcelas);
			
			$bandeiras	= Pagamento::getBandeiras();
			$bancos		= Pagamento::getBancos();
			
			$fiveStore 	= null;
			
			foreach ($bandeiras as $idBandeira => $bandeira) {
				if ($bandeira['bandeira'] == "5Store") {
					$fiveStore	= $bandeiras[$idBandeira];
					$fiveStore['id'] = $idBandeira;
					unset($bandeiras[$idBandeira]);
				}
			}
			
			$this->registro->set('bandeiras', $bandeiras);
			$this->registro->set('bancos', $bancos);
			$this->registro->set('cartao5Store', $fiveStore);
			
			$this->exibir('pagamento.php');
		}
	}
	else {
		$strMensagem	= "Opera&ccedil;&atilde;o inv&aacute;lida.";
		$_SESSION['mensagens']['strMensagem']	= $strMensagem;
		
		header("Location: ./index.php");
	}
?>